Wer jemals versehentlich eine Tabelle in einer Datenbank gelöscht hat oder wem die Festplatte mit der aktuellen Datenbank abgestürzt ist, kennt nur zu gut das niederschmetternde Gefühl, das sich einstellt, wenn einem klar wird, dass sich gerade Wochen harter Arbeit in nichts aufgelöst haben.
Das muss nicht sein. Wenn die Daten in einer PostgreSQL-Tabelle gespeichert sind, kann man durch regelmäßige Backups der Datenbanken Pannen vermeiden. PostgreSQL verfügt über eingebaute Werkzeuge zur Durchführung solcher Backups und im Falle eines Systemabsturzes oder eines Unfalls können bei PostgreSQL Daten aus einem zuvor gesicherten Snapshot wiederhergestellt werden.
Backups anlegen
PostgreSQL bringt ein eingebautes Backup-Werkzeug namens pg_dump mit. Dieses Werkzeug liest die ausgewählte Datenbank und reproduziert deren Inhalte als Serie von SQL-Befehlen, die als Snapshot dienen und zum Wiederherstellen der Daten zu einem späteren Zeitpunkt verwendet werden können. Die Durchführung der Backups geschieht über eine Client-Server-Verbindung.
Anmerkung: Bevor es loslegt, sollte man sich vergewissern, dass man über die Berechtigung verfügt, sich auf dem Server einzuloggen und die Datenbank oder die Tabelle, welche gesichert werden soll, auszulesen. Dies kann man tun, indem man den PostgreSQL-Befehlszeilen-Client (psql) verwendet und versucht, sich damit auf dem Server einzuloggen. Man übergibt den Host-Namen (-h), Benutzernamen ( u), das Passwort (-p) und den Namen der Datenbank an den Client und überprüft, ob man Zugang erhält.
Die Verwendung von pg-dump ist denkbar einfach: Man lässt das Programm wie im Folgenden gezeigt einfach von der Eingabeaufforderung mit dem Namen der zu exportierenden Datenbank laufen (der Pfad zur PostgreSQL-Installation muss natürlich angepasst werden):
Dies erzeugt die Datei test.bak und füllt sie mit den SQL-Befehlen, die zur Wiederherstellung der Datenbank benötigt werden. Bei einem Blick in die Datei finden sich Zeilen, wie im folgenden Beispiel:
Wer lieber Sicherungsdateien von allen Datenbanken des Systems anfertigen möchte (und nicht nur von einer), kann anstelle des Befehls pg_dump den Befehl pg_dumpall verwenden. Mit diesem Befehl wird eine Sicherungsdatei erstellt, die alle PostgreSQL bekannten Datenbanken enthält (einschließlich der eigenen Systemdatenbanken des Programms). Hier ein Anwendungsbeispiel:
Um sicherzustellen, dass die Backups immer auf dem neusten Stand sind, sollte man für eine regelmäßige Sicherungsspeicherung sorgen, indem man den Befehl pg_dump oder pg_dumpall der Cron-Tabelle hinzufügt. Hier sind zwei Beispieleinträge für diese Tabelle. Mit dem ersten wird jede Nacht um 3 Uhr eine Sicherungsdatei der Testdatenbank erstellt und mit dem zweiten wird einmal wöchentlich freitags um 21.00 Uhr eine Sicherungsdatei aller Datenbanken erstellt.
Neueste Kommentare
Noch keine Kommentare zu Backups und Wiederherstellung von PostgreSQL-Datenbanken
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.